﻿using ERP.HumanResources.HumanResourceManagement.Dtos;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace ERP.HumanResources.HumanResourceManagement
{
    public interface IPositionLevelService : IApplicationService
    {
        /// <summary>
        /// 获取职级列表
        /// </summary>
        Task<PagedResultDto<PositionLevelDto>> GetListAsync(GetPositionLevelInputDto input);
        
        /// <summary>
        /// 获取职级详情
        /// </summary>
        Task<PositionLevelDto> GetAsync(int id);
        
        /// <summary>
        /// 创建职级
        /// </summary>
        Task<PositionLevelDto> CreateAsync(CreatePositionLevelDto input);
        
        /// <summary>
        /// 更新职级
        /// </summary>
        Task<PositionLevelDto> UpdateAsync(int id, UpdatePositionLevelDto input);
        
        /// <summary>
        /// 删除职级
        /// </summary>
        Task DeleteAsync(int id);
        
        /// <summary>
        /// 批量删除职级
        /// </summary>
        Task BatchDeleteAsync(List<int> ids);
        
        /// <summary>
        /// 导出职级
        /// </summary>
        Task<byte[]> ExportAsync(GetPositionLevelInputDto input);
    }
}
